package kr.hkit.powerjava.chapter09;

public class Car {
	private static int numberOfCars;
	
	
	
	private String color;
	private int speed;
	private int gear;
	private int id;
	public Car(String color, int speed, int gear) {
		this.color = color;
		this.speed = speed;
		this.gear = gear;
		this.id = ++Car.numberOfCars;
	}
	
	
	
	public static int getNumberOfCars() { //정적메소드 statcic // getter, setter 
		return numberOfCars;
	}



	public static void setNumberOfCars(int numberOfCars) {
		Car.numberOfCars = numberOfCars;
	}

	

	@Override
	public String toString() {
		return "Car [color=" + color + ", speed=" + speed + ", gear=" + gear
				+ ", id=" + id + "]";
	}



	public static void main(String[] args) { //static은 static을 호출 할 수 있다.
		System.out.println("총 생산된 차량 수 :"+Car.numberOfCars); // 객체가 생성되기 전에 생성되어있다
		System.out.println("총 생산된 차량수 = "+Car.getNumberOfCars());
		
		Car blue = new Car("blue", 100, 1);
		System.out.println("총 생산된 차량 수 :"+Car.numberOfCars);
		Car red = new Car("red", 60,2);
		System.out.println("총 생산된 차량 수 :"+Car.numberOfCars);
		Car green = new Car("green", 80,3);
		System.out.println("총 생산된 차량 수 :"+Car.numberOfCars);
/*		System.out.println(this);*/
	}
}
